It can be appreciated that a large number of server computers in operation today run a version of the LINUX family of operating systems, such as Red Hat Enterprise LINUX AS 3. These operating systems provide services to client computers, such as access to data stored in shared directories, access to printers connected to the server, user authentication services, networking services, directory services, etc.
It can also be appreciated that a large number of server computers run a member of the WINDOWS family of operating systems, such as WINDOWS 2000 Server Standard Edition and WINDOWS NT 4.0.
One skilled in the art will recognize that operating system services and applications are typically configured according to the user's needs, and that such configuration settings are stored through a persistent mechanism, such as an on-disk file, so that when the system is reset or restarted, the configuration settings can be read and the service or application can run with the stored settings; in this way the user does not have to reconfigure the settings from scratch.
WINDOWS and LINUX provide many similar functions, such as the ability for client computers to access data on a server and to display text and graphics on a computer screen. On WINDOWS, for example, file and print sharing via the Server Message Block (SMB) protocol and user authentication via the NT LAN Manager protocol (NTLM) is provided by the operating system itself. Similar functionality is provided on LINUX, but requires additional modules to be installed. Advanced Server for UNIX, ported to LINUX, is one application that provides file, print, and authentication via the SMB and NTLM protocols. Samba is another application that provides such functionality. Syntax Totalnet Advanced Server is a third such product.
Although the functions provided are similar between the two operating systems, often they are provided or configured in different and incompatible ways. For example, configuration settings related to file shares are stored in a set of data files called the system registry on WINDOWS, while configuration settings related to file shares are stored in text based configuration files on LINUX, e.g. a format that is different from its counterpart on WINDOWS. Similarly, data related to directory services, which, as the name suggests, deals with information about the people and resources available on a given computer system or network, is stored in the Active Directory on WINDOWS, but is stored using OpenLDAP or other software on LINUX. Likewise, configuration settings for Internet Information Server (IIS), a web server that runs on WINDOWS, are stored in the WINDOWS registry, while configuration settings for Apache, a web server often deployed on LINUX, are stored in a text file named HTTPD.CONF.
While the LINUX operating system has existed for a number of years, it is only recently that it has reached a point of viability and stability that system administrators have begun deploying servers running LINUX where formerly they might have run WINDOWS. However, having deployed one or more servers running the LINUX operating system, system administrators often discover that a mixed environment, that is, one running WINDOWS and LINUX, is more difficult and expensive to manage and maintain than one in which server computers run only the WINDOWS operating system. For these reasons and others, they desire to migrate the services provided and data stored on servers running the LINUX operating system to WINDOWS.
Due to the incompatibility in the ways in which the two operating system families are configured and the ways in which they store configuration settings, however, this task is a difficult, time-consuming, and error-prone manual process. In particular, an administrator must understand the particular settings in question on WINDOWS, and the corresponding settings on LINUX. Often, administrators are hampered by their lack of experience on one or the other of the two operating systems, the difficulty of finding the appropriate settings on either system, the challenge of translating between the settings of the two systems, and the need to configure software on the WINDOWS system to have it provide the equivalent functions as the LINUX system.
The problem of migration is not a new one, as administrators have been confronted with the problem of moving from an old version of an operating system to a new version for years. Alternatively, administrators have been forced to move from one physical machine to another to take advantage of new hardware capabilities or because of a desire to move off an old piece of hardware. However, these migrations have been fairly simple given the relative compatibility in settings between the old and new operating system versions or between the two machines, which may even be running the same version of the operating system.
The present invention addresses the aforementioned problem by automating the migration process from LINUX to WINDOWS, as it relates both to configuration information and to data.